﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;

namespace BaixarSBB
{
    class Program
    {
        static metLivro metLivros = new metLivro();
        private static void Main(string[] args)
        {
            //http://www.sbb.org.br/conteudo/biblia_online.asp?acao=1&pa=3&id_versao=4&id_livro=1&id_capitulo=1
            //var listVelhoTestamento = metLivros.LivrosVelhoTestamento();

            //foreach (var objLivro in listVelhoTestamento)
            //{
            //    for (int i = 1; i <= objLivro.NR_CAPITULOS; i++)
            //    {
            //        metLivros.IncluirConteudo(RetornaVerciculos(objLivro.CO_LIVRO.ToString(), i.ToString(), "3"));
            //    }
            //}

            var listNovoTestamento = metLivros.LivrosNovoTestamento();

            foreach (var objLivro in listNovoTestamento)
            {
                for (int i = 1; i <= objLivro.NR_CAPITULOS; i++)
                {
                    metLivros.IncluirConteudo(RetornaVerciculos(objLivro.CO_LIVRO.ToString(), i.ToString(), "3"));
                }
            }
        }

        protected static List<TB_CONTEUDO> RetornaVerciculos(string strLivro, string strCapitulo, string strVersao)
        {
            string urlOriginal = "http://www.sbb.org.br/conteudo/biblia_online.asp?acao=1&pa=@pag@&id_versao=@versao@&id_livro=@livro@&id_capitulo=@cap@";

            string urlTratada = "";
            string htmldapagina = "";
            int Posicao = 0;
            int intPag = 1;
            string strVersao1 = "";
            string strVersao2 = "";
            string strVersao3 = "";

            urlTratada = urlOriginal.Replace("@pag@", intPag.ToString());
            urlTratada = urlTratada.Replace("@livro@", strLivro);
            urlTratada = urlTratada.Replace("@cap@", strCapitulo);
            urlTratada = urlTratada.Replace("@versao@", strVersao);

            System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew();
            System.Net.WebClient c = new System.Net.WebClient();
            htmldapagina = c.DownloadString(urlTratada);
            StringClass StrC = new StringClass();

            string strNumPag = StrC.InBetween(htmldapagina, "<b class=font_preto>Página 1 de ", " </b>", ref Posicao);

            string strConteudo = "";

           
            int Num = Convert.ToInt32(strNumPag);

            for (int i = 1; i <= Num; i++)
            {
                urlTratada = urlOriginal.Replace("@pag@", i.ToString());
                urlTratada = urlTratada.Replace("@livro@", strLivro);
                urlTratada = urlTratada.Replace("@cap@", strCapitulo);
                urlTratada = urlTratada.Replace("@versao@", strVersao);

                htmldapagina = c.DownloadString(urlTratada);
                strConteudo += StrC.InBetween(htmldapagina, "</b><br><br>", "<div align=", ref Posicao);
                strConteudo = strConteudo.Replace("<br><br>", "");
                //strConteudo = strConteudo.Replace("<hr><br><br>
                //if (i != Num)
                //{
                //    strConteudo += "<hr>";
                //}

            }

            var listConteudo = new List<TB_CONTEUDO>(); 

            string[] Versiculos = Regex.Split(strConteudo, "<hr>");

            int intCap = 0;
            int intVer = 0;
            string strCapVer = "";

            

            foreach (string line in Versiculos)
            {
                try
                {
                    
                    //Versiculo na versão Almeida Revista e Atualizada
                    strVersao1 = line.Replace(" &nbsp; ", "");
                    strCapVer = StrC.InBetween(strVersao1, "<b>", "</b>", ref Posicao);
                    string[] split = strCapVer.Split('.');
                    intCap = Convert.ToInt32(split[0]);
                    intVer = Convert.ToInt32(split[1]);

                    var objConteudo1 = new TB_CONTEUDO();
                    objConteudo1.CO_LIVRO = Convert.ToInt32(strLivro);
                    objConteudo1.CO_VERSAO_BIBLIA = Convert.ToInt32(strVersao);
                    objConteudo1.CO_CAPITULO = intCap;
                    objConteudo1.CO_VERSICULO = intVer;
                    objConteudo1.NO_VERSICULO = strVersao1.Replace("<b>" + strCapVer + "</b>", "");
                    objConteudo1.NO_VERSICULO = objConteudo1.NO_VERSICULO.Replace("\r\n", "");
                    objConteudo1.NO_VERSICULO = objConteudo1.NO_VERSICULO.TrimStart();
                    listConteudo.Add(objConteudo1);

                }
                catch (Exception)
                {


                }
            
            }

            return listConteudo;

        }
            
        
        }
}
